Groupes de programmes

Le projet comporte plusieurs groupes de programmes,

  • S= l'interface hardware, qui fournit les positions des switches, sticks.
  • C= le calcul en temps réel (un calcul par 20 ms) et tout ce qui est strictement indispensable pour voler.
  • UI= l'interface avec l'utilisateur qui fonctionne à une échelle de temps 'humaine' , fournit la dictée de messages .
  • R= l'interface 'radio' et télémétrie ( pour Jeti, le uart 9bits est réalisé avec les PIO)
    La communication entre les programmes se fait par des 'messages' voir 1.1 Messages

Processeurs

Si on pouvait trouver un processeur avec tout le hardware nécessaire, ce seul processeur suffirait...je préfère avoir la possibilité d'utiliser plusieurs microprocesseurs et adapter a posteriori le nombre de processeurs selon la charge.

Les processeurs sont connectés en chaîne par des portes série en échangeant des 'messages' . Un message comporte un code, qui détermine le processeur et la fonction destinataire...qui peut être dans le même processeur.

Le language préférentiel est micro-python, bien que l'un des microprocesseurs pourrait plutôt utiliser C++ (par exemple pour supporter LORA)

Debug

Il est très utile de développer sur le laptop, profiter des très belles possibilités de debug, avec des outils comme Thonny ou Wingware.

Configuration initiale

Mes émetteurs existants 'V5' sont adaptables à V9 en remplaçant simplement la plaque de base.
Elle porte un microprocesseur pico pour les fonctions 'lecture hardware', 'calcul' et 'ppm'.
La durée mesurée d'une boucle est 13,5 ms , dont 9 ms pour le calcul et le solde pour l'acquisition et conversion des mesures.Le pico est donc bien suffisant.

Un deuxième microprocesseur est destiné à l'interface utilisateur principalement pendant le vol. C'est un pico complété par un circuit DFPlayer qui peut 'jouer' un morceau de musique : ici il dicte les messages.

Un laptop fournit l'interface utilisateur lorsque l'émetteur est déposé.

Options

pour le processeur de calcul

On peut utiliser deux processeurs

  • un processeur S pour l'acquisition des organes de commande (ADC et DIO)
  • un processeur C strictement réservé au calcul

redondance du processeur de calcul

Avec une carte de base adaptée on peut commuter:

  • deux processeurs de calcul se partageant une carte de lecture des signaux DIO/ADC
  • deux processeurs de calcul chacun avec sa carte DIO/ADC...mais évidemment avec un dédoublement de tous les fils entre une entrée DIO /ADC et l'organe de commande
    La redondance des transmissions est un autre problème, il faut prévoir un commutateur entre deux récepteurs.

processeur radio

Ce n'est pas strictement nécessaire pour Jeti : les fonctions pour générer le signal PPM sont possibles dans le deuxième core et les PIO du processeur de calcul . La réception du message de télémétrie est confiée au deuxième core du processeur UI : réception avec PIO 9bits puis découpage en variables pour python.
Un processeur indépendant est un atout pour une transmission radio telle que Lora , qui pourrait exiger une programmation en C++( un microprocesseur' est programmé soit en micro-python, soit en C++)